/*
 * #%L
 * InterfaceAPI
 * %%
 * Copyright (C) 2011 Ractoc.com
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package com.ractoc.opengamefinder.api.messages;

import com.ractoc.opengamefinder.api.vo.AccountVO;

/**
 * This message notifies everyone that a player has entered a certain room.
 * @author ractoc
 * @version 0.1
 */
public final class ChatEnterRoomMessage extends ChatMessage {
    
    private AccountVO account;
    private String avatarFileName;

    private boolean outBound;
    private boolean currentPlayer;
    
    /**
     * Default constructor.
     */
    public ChatEnterRoomMessage() {
    }

    /**
     * Set the account of the player that entered the room.
     * @param accountParam The account of the player that entered the room.
     */
    public void setAccount(final AccountVO accountParam) {
        this.account = accountParam;
    }

    /**
     * Get the account of the player that entered the room.
     * @return The account of the player that entered the room.
     */
    public AccountVO getAccount() {
        return account;
    }

    /**
     * Is this an outbound or an inbound message.
     * @param outBoundParam Is this an outbound or an inbound message.
     */
    public void setOutBound(final boolean outBoundParam) {
        this.outBound = outBoundParam;
    }

    /**
     * Is this an outbound or an inbound message.
     * @return Is this an outbound or an inbound message.
     */
    public boolean isOutBound() {
        return outBound;
    }

    /**
     * Set the filename of the avatar to display.
     * @param avatarFileNameParam The filename of the avatar to display.
     */
    public void setAvatarFileName(final String avatarFileNameParam) {
        this.avatarFileName = avatarFileNameParam;
    }

    /**
     * Get the filename of the avatar to display.
     * @return The filename of the avatar to display.
     */
    public String getAvatarFileName() {
        return avatarFileName;
    }

    /**
     * Was this line entered by the current (local) player?
     * @param currentPlayer Indicator.
     */
    public void setCurrentPlayer(boolean currentPlayer) {
        this.currentPlayer = currentPlayer;
    }
    
    /**
     * Was this line entered by the current (local) player?
     * @return indicator.
     */
    public boolean isCurrentPlayer() {
        return currentPlayer;
    }

}
